The present invention concerns analyzing computer-based tasks to (i) define and infer tasks and end goals from usage data, (ii) cluster similar tasks together, (iii) determine probabilities that certain tasks will be performed, (iv) determine the different ways in which users go about completing a given task, (v) use models of clustered tasks and probabilities of clustered tasks to help computer users to perform such tasks more effectively and efficiently, and (vi) target marketing information to computer users based on a task being performed. The present invention also concerns providing a uniform semantic network for representing different types of objects (or information) in a uniform way.
xc2xa71.2.1 Task Performance
A task may be defined as a goal achieved by performing a sequence of steps. People often rely on computers to complete tasks. Different computer applications are tailored to help people perform different tasks. For example: a word processing application may be used to generate a letter, generate a food recipe card, or generate a table of contents for a paper; a spreadsheet application may be used to determine an accounts receivable value or determine a taxable income value; a drafting application may be used to generate an organizational chart, prepare a block diagram, or layout a floor plan for a new kitchen; a database or Internet browser application may be used to find crash test results for new cars, get a stock quote, plan an evening out with a diner and a movie, or find an employee""s telephone extension.
Computer applications are designed based on predictions of how likely most users will want to perform certain tasks. Special provisions (e.g., toolbars, hierarchical menus, special keyboard keys, etc.) to assist the user in performing such tasks are provided based on assumptions made by the application designer(s). Thus, for example, in the context of a word processing application, a spell checking task may be designed to be easier to perform than a bibliography generating task because it is assumed that users will more likely want to perform a spell check task than a bibliography generation task. Similarly, a keyboard may be provided with an addition (xe2x80x9c+xe2x80x9d) key but not an integration (xe2x80x9c∫xe2x80x9d) key because it is assumed that it is more likely that users will want to include a xe2x80x9c+xe2x80x9d sign in a document than a xe2x80x9c∫xe2x80x9d sign in a document. In the context of the browsing contents of an Internet xe2x80x9csitexe2x80x9d or xe2x80x9cwebsitexe2x80x9d (i.e., an Internet resource server), a topology of the Internet site may be designed based on expected usage of (e.g., requests for) various resources. Thus, for example, reviews of newly released movies may be easier to request (or navigate to) than reviews of older movies.
Assumptions about what tasks people want to perform and how people intuitively go about performing tasks are reflected in the design of computer applications, the topology of resource servers, such as Internet sites for example, and user interface methods (such as forms and frames) used in interactive applications and resource servers. Unfortunately, once designed, a computer application is relatively fixed. Similarly, the topology of most Internet sites is relatively static. Consequently, computer applications and Internet site topologies are typically only as good as the assumptions which underlay their design. Even if the design of computer application and Internet site topologies are based on well founded assumptions about what types of tasks users will likely want to perform and how they will go about performing such tasks, such assumptions may become stale as people want to perform different tasks.
Moreover, certain tasks will often span various computer applications. For example, a task may be to generate an annual report. Generating such a report may involve entering text by means of a word processing application, determining financial figures with a spreadsheet application, and generating a block diagram using a drafting application. It is difficult for designers of individual applications to anticipate such inter-application tasks and design their applications accordingly.
In view of the foregoing problems with computer-based tools for performing various tasks, methods and apparatus for analyzing what computer users are doingxe2x80x94more specifically what tasks are being performed by users and how such tasks are being performedxe2x80x94are needed. Moreover, methods and apparatus are needed for using such task analysis to help computer users to effectively perform desired tasks.
xc2xa71.2.2 MARKETING INFORMATION DISSEMINATION
As discussed above, resource servers, such as Internet websites for example, permit people to access a great deal of information. In addition to their function of providing resources to computer users, Internet sites provide a new conduit for disseminating marketing information to people. Often, marketing information is closely related to the resources requested. For example, an Internet resource providing stock quotations may include an advertisement for a stockbroker, or an Internet resource providing sports scores may include an advertisement for a baseball game to be televised. However, such marketing information is related to the characteristics of the Internet resource itself, not to the task being performed by the user requesting the resources. Thus methods and apparatus for providing marketing information relevant to a task being performed are needed.
xc2xa71.2.3 OBJECT (OR INFORMATION) REPRESENTATION
Computer users may use various types of applications and software services. The application and software services, in turn, may use different types of stored objects (as information, data, or executable code). For example, some objects, such as relational database structures, XML (Extensible Markup Language), and RDF (Resource Description Framework), for example, may be characterized as xe2x80x9cstructured objectsxe2x80x9d. More specifically, relational databases are defined by elements structured into rows and columns of tables. XML defines trees based on containment relationships (e.g., an organization contains groups, and each of the groups contains members). Other objects, such DCOM and JAVA runtime objects for example, may be characterized as xe2x80x9cactive objectsxe2x80x9d. Active objects may be objects that define methods and/or variables, in the object oriented language sense. Further, techniques are available (See, e.g., U.S. Pat. Nos. 5,740,439, 5,682,536, 5,689,703 and 5,581,760, each of which if incorporated herein by reference) to xe2x80x9cexposexe2x80x9d machine executable instructions as objects. Still other objects, such as text document for example, may be characterized as xe2x80x9clinear object.xe2x80x9d Some objects may have more than one type. For example, HTML (Hyper-Text Markup Language) documents may include linear text, and may include hyper-text links defining a hierarchical structure.
To reiterate, applications and application services are typically tailored to only those underlying object or information type(s) that are relevant to the particular application or application service. Unfortunately, it is not easy to implement inter-application services, such as analyzing tasks discussed above, which user various types of objects. Thus, a uniform representation of various types of objects (or information) would be useful.
The present invention provides methods and apparatus for analyzing tasks performed by computer users. First, the present invention includes methods and apparatus to gather usage data. That is, when performing tasks, users will interact with the computer and perform a number of steps (i.e., user inputs) in an attempt to complete the task. These steps (user inputs) are logged in a usage log for further analysis. Second, the present invention includes methods, apparatus, and data structures to convert logged usage data into a uniform format. More specifically, objects (e.g., machine executable instructions, various types of database resources, text files, etc.) invoked pursuant to the user inputs may be expressed with a uniform representation. The present invention defines a uniform representation which may be used and provides methods and apparatus for mapping between objects (or information) having a specific type, and the same objects (or information) expressed with the uniform representation. Third, the present invention includes methods and apparatus to determine or define task boundaries. That is, a computer user may interact with a computer to perform a number of tasks during a single session or may perform a single task over a number of sessions. Fourth, the present invention includes methods and apparatus to define task boundaries from the converted (or non-converted, uniform) usage data. Finally, the present invention includes methods and apparatus to generate a task analysis model from the defined tasks. More specifically, the present invention may function to xe2x80x9cclusterxe2x80x9d similar tasks together. The task model may use a limit on (a) the number of clusters, and/or (b) the distance (i.e., xe2x80x9cdissimilarityxe2x80x9d) between the clusters, when generating the model.
The present invention also includes methods and apparatus which use the task analysis model. First, the present invention includes methods and apparatus for designing application user interfaces such as tool bars, hierarchical menus, gratuitous help, etc. In this instance, probabilities of tasks from the task analysis model may be used to determine what tasks users will likely want to perform. Human design factors, such as how many functions users like on a toolbar or how many levels of menus they like may be used when generating the task analysis model to determine how many clusters the model should have.
The present invention also includes methods and apparatus which use the task analysis model for designing a topology of a resource server, such as an Internet website for example. As was the case with designing application user interfaces, in this instance, probabilities of tasks from the task analysis model may be used to determine what tasks users will likely want to perform. Human design factors, such as how many hyper-text links or query boxes on a single web page users like may be used when determining the topology of the resource server interface.
The present invention also includes methods and apparatus to help users complete a task based on the task analysis model. Such help, for example, may be in the form of a gratuitous help function. Basically, a run-time application will look at steps being performed by the user and determine if such steps xe2x80x9cbelong toxe2x80x9d a task cluster of the task analysis model. If the steps performed by the user appear to xe2x80x9cbelong toxe2x80x9d a task cluster, the user may be provided with gratuitous help. For example, the application may communicate to the user, xe2x80x9cIt seems that you are trying to generate an annual report. May I help you complete this task?xe2x80x9d Alternatively, when it can be established, with a requisite degree of certainty, that the user is trying to perform a particular task, the application may automatically complete that task without further input from the user or the application may guide the user through remaining steps for completing the task in an efficient manner.
Finally, the present invention includes methods and apparatus to target marketing information to users based on user inputs and a task analysis model. For example, the Internet has permitted companies to target marketing information to narrow niches of potential customers. For example, a web page providing stock quotes may advertise a stock broker, a web page providing telephone numbers may advertise a long distance telephone carrier, etc. However, the present invention permits tasks to be more generalized. For example, it may recognize that an Internet user submitting queries for a restaurant in a certain neighborhood may be planning a date including dinner and a movie. Thus, in this case, the present invention might function to provide movie advertisements along with the restaurant information resources.